/** util/upload.js */
var commonapi = require('../component/service/commonapi.js');
//后台上传图片功能 一次只能上传一张  return EntityAttachmentAO 该方法为异步调用，所以回调父页面方法
function uploadImg(that,method){
  wx.chooseImage({
    count: 1, // 默认9
    sizeType: ['compressed'], // 可以指定是原图还是压缩图，默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
    success: function (res) {
      // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
      var tempFilePaths = res.tempFilePaths;
      if (typeof (res.tempFiles)!='undefined'&&res.tempFiles[0].size > 5120000) {
        wx.showToast({
          title: '图片不得超过5M',
          image: '../../image/close.png',
          duration: 1500
        })
        return;
      }
      wx.uploadFile({
        url: getApp().globalData.host + 'bizportal/my/attachment/upload',
        //url: 'http://127.0.0.1:9080/bizportal/my/attachment/upload',
        filePath: tempFilePaths[0],
        header: getApp().globalData.uploadHeader,
        name: 'file',
        formData: {
          'fileType': 'pic'
        },
        success: function (res) {
          if (res.statusCode==200){
            let response = JSON.parse(res.data);
            let result ={
              outFileUrl:response.data[0],
              id:response.ids[0],
            }
            that[method](result);
            //that[method](JSON.parse(res.data).data);
          }
        }
      })
    }
  })
}

//后台上传图片功能反馈进度条 一次只能上传一张  return EntityAttachmentAO 该方法为异步调用，所以回调父页面方法
function uploadImgProcess(that, method) {
  wx.chooseImage({
    count: 1, // 默认9
    sizeType: ['compressed'], // 指定压缩图
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
    success: function (res) {
      // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
      var tempFilePaths = res.tempFilePaths;
      if (res.tempFiles[0].size > 5120000){
        wx.showToast({
          title: '图片不得超过5M',
          image: '../../image/close.png',
          duration: 1500
        })
        return;
      }
      if(commonapi.verifySDKVersion(1.4)){
        let uploadTask = wx.uploadFile({
          url: getApp().globalData.host + 'bizportal/my/attachment/upload',
          filePath: tempFilePaths[0],
          header: getApp().globalData.uploadHeader,
          name: 'file',
          formData: {
            'fileType': 'pic'
          },
          success: function (res) {
            if (res.statusCode == 200) {
              let response = JSON.parse(res.data);
              let result ={
                outFileUrl:response.data[0],
                id:response.ids[0],
              }
              that[method](result);
            }
          }
        })
        let paramName = "uploadTask." + method;
        that.setData({
          [paramName]: 0
        })
        updateUploadStatus(that, uploadTask,method);
      }
      
    }
  })
}

//更新上传状态
function updateUploadStatus(that,uploadTask,method){
    uploadTask.onProgressUpdate((res) => {
      let paramName = "uploadTask." + method;
      that.setData({
        [paramName]: res.progress
      })
      if (res.progress<100){
        setTimeout(function () {
          updateUploadStatus(that,uploadTask);
        }, 1000)
      }
    })
}

//商城（前端）上传图片功能 一次只能上传一张  return EntityAttachmentAO 该方法为异步调用，所以回调父页面方法
//return 访问路径 例如 https://www.ynittc.cn/img/uuid32.png
function uploadFrontImg(that, method) {
  wx.chooseImage({
    count: 1, // 默认9
    sizeType: ['compressed'], // 可以指定是原图还是压缩图，默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
    success: function (res) {
      // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
      var tempFilePaths = res.tempFilePaths;
      if (res.tempFiles[0].size > 5120000) {
        wx.showToast({
          title: '图片不得超过5M',
          image: '../../image/close.png',
          duration: 1500
        })
        return;
      }
      wx.uploadFile({
        url: getApp().globalData.host + 'upload',
        filePath: tempFilePaths[0],
        header: getApp().globalData.uploadHeader,
        name: 'file',
        formData: {
          'fileType': 'pic'
        },
        success: function (res) {
          if (res.statusCode == 200) {
            that[method](JSON.parse(res.data));
          }
        }
      })
    }
  })

}


//商城（前端）上传图片功能 一次只能上传一张  return EntityAttachmentAO 该方法为异步调用，所以回调父页面方法
//return 临时路径（微信临时路径） & 访问路径（ 例如 /img/fceaa41e463c470fabc971e65e73e99d.jpg）
function uploadFrontPreview(that, method) {
  wx.chooseImage({
    count: 1, // 默认9
    sizeType: ['compressed'], // 可以指定是原图还是压缩图，默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
    success: function (res) {
      // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
      var tempFilePaths = res.tempFilePaths;
      if (res.tempFiles[0].size > 5120000) {
        wx.showToast({
          title: '图片不得超过5M',
          image: '../../image/close.png',
          duration: 1500
        })
        return;
      }
      wx.uploadFile({
        url: getApp().globalData.host + 'upload',
        filePath: tempFilePaths[0],
        header: getApp().globalData.uploadHeader,
        name: 'file',
        formData: {
          'fileType': 'pic'
        },
        success: function (res) {
          if (res.statusCode == 200) {
            res.temp = tempFilePaths[0];
            that[method](res);
          }
        }
      })
    }
  })
}

module.exports = {
  uploadImg: uploadImg,
  uploadFrontImg: uploadFrontImg,
  uploadFrontPreview: uploadFrontPreview,
  uploadImgProcess: uploadImgProcess
}